/*
* 785. ¿ìËÙÅÅÐò
*/

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>

using namespace std;

const int N = 1e6 + 10;
int n;
int q[N];											//存储该数列

void quick_sort(int q[], int l, int r)
{
	if (l >= r) return;								//快排中必须l>=r
	int x = q[rand() % (r - l + 1) + l];			//随机取数列中的数
	int	i = l - 1, j = r + 1;
	while (i<j)										//当i和j相遇或错位时，分好区间
	{
		do i++; while (q[i] < x);					//当q[i]>=x时，i停止右移
		do j--; while (q[j] > x);					//当q[j]<=x时，j停止左移
		if (i < j) swap(q[i], q[j]);				//此时交换q[i]和q[j]
	}
	quick_sort(q, l, j);							//递归处理左边区间
	quick_sort(q, j + 1, r);						//递归处理右边区间
}

int main()
{
	scanf("%d", &n);
	for (int i = 0; i < n; i++) scanf("%d", &q[i]);
	quick_sort(q, 0, n - 1);
	for (int i= 0; i < n; i++) printf("%d", q[i]);
	return 0;
}